package com.liuxinlong.modules.dao;

import java.util.List;
import java.util.Map;

import com.liuxinlong.modules.entity.MaterialResume;
import com.baomidou.mybatisplus.service.IService;

public interface MaterialResumeDao extends IService<MaterialResume> {
    /**
     * 分页查询物料履历信息
     *
     * @param queryParam 请求信息
     * @return 物料履历信息列表
     */
    List<MaterialResume> pageResumeList(Map<String, Object> queryParam);

    /**
     * 查询物料履历信息总数
     *
     * @param queryParam 请求信息
     * @return 物料履历信息总数
     */
    int getResumeCount(Map<String, Object> queryParam);

    /**
     * 新增物料履历信息
     *
     * @param materialResume 物料履历信息
     */
    void addResume(MaterialResume materialResume);

    /**
     * 更新物料履历信息
     *
     * @param materialResume 物料履历信息
     */
    void updateResume(MaterialResume materialResume);

    /**
     * 删除物料履历信息
     *
     * @param id 物料履历id
     */
    void deleteResume(String id);

    /**
     * 根据物料获取履历数据
     *
     * @param material 物料
     * @param region   物料所属域
     * @return 物料履历信息列表
     */
    List<MaterialResume> getMaterialResume(String material, String region);

    /**
     * 批量新增物料履历信息
     *
     * @param list 物料履历列表
     */
    void batchAddResume(List<MaterialResume> list);

    /**
     * 批量获取物料履历数据
     *
     * @param materials 物料列表
     * @param region    物料所属域
     * @param startTime    履历时间
     * @return 物料履历信息列表
     */
    List<MaterialResume> getBatchMaterialResume(List<String> materials, String region,String startTime);

    /**
     * 删除物料履历数据
     *
     * @param materials 物料号列表
     * @param region 域
     * @param replaceTime 替换时间
     */
    void deleteBatchResumeByMaterial(List<String> materials,String region,String replaceTime);

    /**
     * 根据源id获取履历数据
     *
     * @param sourceId 源id
     * @return 物料履历信息列表
     */
    MaterialResume getMaterialResumeBySource(String sourceId);

}
